<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>XMP Toolkit SDK: TXMPIterator&lt; tStringObj &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xmp_tagline_small.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">XMP Toolkit SDK
   &#160;<span id="projectnumber">6.0.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classTXMPIterator.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classTXMPIterator-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">TXMPIterator&lt; tStringObj &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>API for access to the XMP Toolkit iteration services.  
 <a href="classTXMPIterator.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad767d731320d3f4c997c6ce9f7f8fa63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">operator=</a> (const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;rhs)</td></tr>
<tr class="memdesc:ad767d731320d3f4c997c6ce9f7f8fa63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator, assigns the internal ref and increments the ref count.  <a href="classTXMPIterator.html#ad767d731320d3f4c997c6ce9f7f8fa63">More...</a><br /></td></tr>
<tr class="separator:ad767d731320d3f4c997c6ce9f7f8fa63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88e855c18b2b15f7b8a5ccf3b9398352"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">TXMPIterator</a> (const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;original)</td></tr>
<tr class="memdesc:a88e855c18b2b15f7b8a5ccf3b9398352"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, creates a client object refering to the same internal object.  <a href="classTXMPIterator.html#a88e855c18b2b15f7b8a5ccf3b9398352">More...</a><br /></td></tr>
<tr class="separator:a88e855c18b2b15f7b8a5ccf3b9398352"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c1bd03e776a91cbb6fd02991fe08e1b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
<tr class="memdesc:a5c1bd03e776a91cbb6fd02991fe08e1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an iterator for properties within a schema in an XMP object.  <a href="classTXMPIterator.html#a5c1bd03e776a91cbb6fd02991fe08e1b">More...</a><br /></td></tr>
<tr class="separator:a5c1bd03e776a91cbb6fd02991fe08e1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aab7b2ddd84f25e024d7c3e66161cac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a3aab7b2ddd84f25e024d7c3e66161cac">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
<tr class="memdesc:a3aab7b2ddd84f25e024d7c3e66161cac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an iterator for a subtree of properties within an XMP object.  <a href="classTXMPIterator.html#a3aab7b2ddd84f25e024d7c3e66161cac">More...</a><br /></td></tr>
<tr class="separator:a3aab7b2ddd84f25e024d7c3e66161cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0965286a8cabeafc92fdc52f643003f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#ab0965286a8cabeafc92fdc52f643003f">TXMPIterator</a> (const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;xmpObj, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options=0)</td></tr>
<tr class="memdesc:ab0965286a8cabeafc92fdc52f643003f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an iterator for the entire data tree within an XMP object.  <a href="classTXMPIterator.html#ab0965286a8cabeafc92fdc52f643003f">More...</a><br /></td></tr>
<tr class="separator:ab0965286a8cabeafc92fdc52f643003f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b2b7a3d6359aec216adf32bdf7fb140"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a6b2b7a3d6359aec216adf32bdf7fb140">TXMPIterator</a> (<a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> schemaNS, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> propName, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
<tr class="memdesc:a6b2b7a3d6359aec216adf32bdf7fb140"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an iterator for the global tables of the XMP toolkit. Not implemented.  <a href="classTXMPIterator.html#a6b2b7a3d6359aec216adf32bdf7fb140">More...</a><br /></td></tr>
<tr class="separator:a6b2b7a3d6359aec216adf32bdf7fb140"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a911554533e8a3f09ab8870bd54462196"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">~TXMPIterator</a> ()  throw ()</td></tr>
<tr class="memdesc:a911554533e8a3f09ab8870bd54462196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor, typical virtual destructor.  <a href="classTXMPIterator.html#a911554533e8a3f09ab8870bd54462196">More...</a><br /></td></tr>
<tr class="separator:a911554533e8a3f09ab8870bd54462196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a124a1dd1ab3ff0d236e4d4b967dafcd9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">Next</a> (tStringObj *schemaNS=0, tStringObj *propPath=0, tStringObj *propValue=0, <a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *options=0)</td></tr>
<tr class="memdesc:a124a1dd1ab3ff0d236e4d4b967dafcd9"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">Next()</a></code> visits the next node in the iteration.  <a href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9">More...</a><br /></td></tr>
<tr class="separator:a124a1dd1ab3ff0d236e4d4b967dafcd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30b4d78974b347e4fcd275f1f65a61b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">Skip</a> (<a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> options)</td></tr>
<tr class="memdesc:a30b4d78974b347e4fcd275f1f65a61b2"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations.">Skip()</a></code> skips some portion of the remaining iterations.  <a href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2">More...</a><br /></td></tr>
<tr class="separator:a30b4d78974b347e4fcd275f1f65a61b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:af96460ad80e55b76214c48375fda05d7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#af96460ad80e55b76214c48375fda05d7">TXMPIterator</a> ()</td></tr>
<tr class="separator:af96460ad80e55b76214c48375fda05d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a9a59621f2961ee11b164d82c8c3c0295"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#a9a59621f2961ee11b164d82c8c3c0295">SetClientString</a> (void *clientPtr, <a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a> valuePtr, <a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a> valueLen)</td></tr>
<tr class="separator:a9a59621f2961ee11b164d82c8c3c0295"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:aeecf240d827e33c8b1d7040a99dc7600"><td class="memItemLeft" align="right" valign="top"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTXMPIterator.html#aeecf240d827e33c8b1d7040a99dc7600">iterRef</a></td></tr>
<tr class="separator:aeecf240d827e33c8b1d7040a99dc7600"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class tStringObj&gt;<br />
class TXMPIterator&lt; tStringObj &gt;</h3>

<p>API for access to the XMP Toolkit iteration services. </p>
<p><code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> provides a uniform means to iterate over the schema and properties within an XMP object. <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> is a template class which must be instantiated with a string class such as <code>std::string</code>. See the instructions in <a class="el" href="XMP_8hpp.html" title="Overall header file for the XMP Toolkit.">XMP.hpp</a>, and the Overview for a discussion of the overall architecture of the XMP API. Access these functions through the concrete class, <code>SXMPIterator</code>.</p>
<dl class="section note"><dt>Note</dt><dd>Only XMP object iteration is currently available. Future development may include iteration over global tables, such as registered namespaces.</dd></dl>
<p>To understand how iteration works, you should have a thorough understanding of the XMP data tree, as described in the XMP Specification Part 1. You might also find it helpful to create some complex XMP and examine the output of <code><a class="el" href="classTXMPMeta.html#a335d81006fc0ac7270e800e235779fde" title="DumpObject() outputs the content of an XMP object to a callback handler for debugging.">TXMPMeta::DumpObject()</a></code>.</p>
<ul>
<li>The top of the XMP data tree is a single root node. This does not explicitly appear in the dump and is never visited by an iterator; that is, it is never returned from <code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">TXMPIterator::Next()</a></code>.</li>
</ul>
<ul>
<li>Beneath the root are schema nodes; these collect the top-level properties in the same namespace. They are created and destroyed implicitly.</li>
</ul>
<ul>
<li>Beneath the schema nodes are the property nodes. The nodes below a property node depend on its type (simple, struct, or array) and whether it has qualifiers.</li>
</ul>
<p>A <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> constructor defines a starting point for the iteration, and options that control how it proceeds. By default, iteration starts at the root and visits all nodes beneath it in a depth-first manner. The root node iteself is not visited; the first visited node is a schema node. You can provide a schema name or property path to select a different starting node. By default, this visits the named root node first then all nodes beneath it in a depth-first manner.</p>
<p>The function <code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">TXMPIterator::Next()</a></code> delivers the schema URI, path, and option flags for the node being visited. If the node is simple, it also delivers the value. Qualifiers for this node are visited next. The fields of a struct or items of an array are visited after the qualifiers of the parent.</p>
<p>You can specify options when contructing the iteration object to control how the iteration is performed.</p>
<ul>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a></code> - Visit just the immediate children of the root. Skip the root itself and all nodes below the immediate children. This omits the qualifiers of the immediate children, the qualifier nodes being below what they qualify. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a></code> - Visit just the leaf property nodes and their qualifiers. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a></code> - Return just the leaf component of the node names. The default is to return the full path name. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a></code> - Do not visit the qualifiers of a node. </li>
</ul>

<p class="definition">Definition at line <a class="el" href="TXMPIterator_8hpp_source.html#l00081">81</a> of file <a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a88e855c18b2b15f7b8a5ccf3b9398352"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88e855c18b2b15f7b8a5ccf3b9398352">&#9670;&nbsp;</a></span>TXMPIterator() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;&#160;</td>
          <td class="paramname"><em>original</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy constructor, creates a client object refering to the same internal object. </p>
<p>Creates a new client iterator that refers to the same underlying iterator as an existing object.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">original</td><td>An existing iteration object to copy. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a5c1bd03e776a91cbb6fd02991fe08e1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c1bd03e776a91cbb6fd02991fe08e1b">&#9670;&nbsp;</a></span>TXMPIterator() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
          <td class="paramname"><em>xmpObj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
          <td class="paramname"><em>schemaNS</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
          <td class="paramname"><em>propName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
          <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructs an iterator for properties within a schema in an XMP object. </p>
<p>See the class description for the general operation of an XMP object iterator. Overloaded forms are provided to iterate the entire data tree, a subtree rooted at a specific node, or properties within a specific schema.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">xmpObj</td><td>The XMP object over which to iterate.The new <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> object is returned via xmpObj.</td></tr>
    <tr><td class="paramname">schemaNS</td><td>Optional schema namespace URI to restrict the iteration. To visit all of the schema, pass 0 or the empty string "".</td></tr>
    <tr><td class="paramname">propName</td><td>Optional property name to restrict the iteration. May be an arbitrary path expression. If provided, a schema URI must also be provided. To visit all properties, pass 0 or the empty string "".</td></tr>
    <tr><td class="paramname">options</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: <ul>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers. </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3aab7b2ddd84f25e024d7c3e66161cac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3aab7b2ddd84f25e024d7c3e66161cac">&#9670;&nbsp;</a></span>TXMPIterator() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
          <td class="paramname"><em>xmpObj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
          <td class="paramname"><em>schemaNS</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
          <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructs an iterator for a subtree of properties within an XMP object. </p>
<p>See the class description for the general operation of an XMP object iterator. Overloaded forms are provided to iterate the entire data tree, a subtree rooted at a specific node, or properties within a specific schema.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">xmpObj</td><td>The XMP object over which to iterate.The new <a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a> object returned via xmpObj.</td></tr>
    <tr><td class="paramname">schemaNS</td><td>Optional schema namespace URI to restrict the iteration. To visit all of the schema, pass 0 or the empty string "".</td></tr>
    <tr><td class="paramname">options</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: <ul>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers. </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab0965286a8cabeafc92fdc52f643003f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0965286a8cabeafc92fdc52f643003f">&#9670;&nbsp;</a></span>TXMPIterator() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTXMPMeta.html">TXMPMeta</a>&lt; tStringObj &gt; &amp;&#160;</td>
          <td class="paramname"><em>xmpObj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
          <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructs an iterator for the entire data tree within an XMP object. </p>
<p>See the class description for the general operation of an XMP object iterator. Overloaded forms are provided to iterate the entire data tree, a subtree rooted at a specific node, or properties within a specific schema.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">xmpObj</td><td>The XMP object over which to iterate. The new <code><a class="el" href="classTXMPIterator.html" title="API for access to the XMP Toolkit iteration services.">TXMPIterator</a></code> object returned via xmpObj.</td></tr>
    <tr><td class="paramname">options</td><td>Option flags to control the iteration. A logical OR of these bit flag constants: <ul>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635ab26e1a38d1d0343fcc5bdaab1b60e3ed" title="Just do the immediate children of the root, default is subtree.">kXMP_IterJustChildren</a></code> - Visit only the immediate children of the root; default visits subtrees. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a4589f99b5b4a55e785e3baf4fe1d9b19" title="Just do the leaf nodes, default is all nodes in the subtree.">kXMP_IterJustLeafNodes</a></code> - Visit only the leaf nodes; default visits all nodes. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635acf22e638f4144bcec8207b2ab69bb344" title="Return just the leaf part of the path, default is the full path.">kXMP_IterJustLeafName</a></code> - Return just the leaf part of the path; default returns the full path. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a726ca809ffd3d67ab4b8476646f26635a1b91947105ae68c48c5d5e36aa70d101" title="Omit all qualifiers.">kXMP_IterOmitQualifiers</a></code> - Omit all qualifiers. </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a6b2b7a3d6359aec216adf32bdf7fb140"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b2b7a3d6359aec216adf32bdf7fb140">&#9670;&nbsp;</a></span>TXMPIterator() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
          <td class="paramname"><em>schemaNS</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
          <td class="paramname"><em>propName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
          <td class="paramname"><em>options</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructs an iterator for the global tables of the XMP toolkit. Not implemented. </p>

</div>
</div>
<a id="a911554533e8a3f09ab8870bd54462196"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a911554533e8a3f09ab8870bd54462196">&#9670;&nbsp;</a></span>~TXMPIterator()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::~<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
        <tr>
          <td align="right">throw </td><td>(</td><td colspan="2"></td>
        </tr>
        <tr>
          <td align="right"></td><td>)</td><td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor, typical virtual destructor. </p>

</div>
</div>
<a id="af96460ad80e55b76214c48375fda05d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af96460ad80e55b76214c48375fda05d7">&#9670;&nbsp;</a></span>TXMPIterator() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::<a class="el" href="classTXMPIterator.html">TXMPIterator</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a124a1dd1ab3ff0d236e4d4b967dafcd9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a124a1dd1ab3ff0d236e4d4b967dafcd9">&#9670;&nbsp;</a></span>Next()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::Next </td>
          <td>(</td>
          <td class="paramtype">tStringObj *&#160;</td>
          <td class="paramname"><em>schemaNS</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">tStringObj *&#160;</td>
          <td class="paramname"><em>propPath</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">tStringObj *&#160;</td>
          <td class="paramname"><em>propValue</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a> *&#160;</td>
          <td class="paramname"><em>options</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code><a class="el" href="classTXMPIterator.html#a124a1dd1ab3ff0d236e4d4b967dafcd9" title="Next() visits the next node in the iteration.">Next()</a></code> visits the next node in the iteration. </p>
<p>Proceeds to the next node according to the options specified on creation of this object, and delivers the schema URI, path, and option flags for the node being visited. If the node is simple, it also delivers the value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">schemaNS</td><td>[out] A string object in which to return the assigned the schema namespace URI of the current property. Can be null if the value is not wanted.</td></tr>
    <tr><td class="paramname">propPath</td><td>[out] A string object in which to return the XPath name of the current property. Can be null if the value is not wanted.</td></tr>
    <tr><td class="paramname">propValue</td><td>[out] A string object in which to return the value of the current property. Can be null if the value is not wanted.</td></tr>
    <tr><td class="paramname">options</td><td>[out] A buffer in which to return the flags describing the current property, which are a logical OR of <code><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8" title="The type for a collection of 32 flag bits.">XMP_OptionBits</a></code> bit-flag constants.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if there was another node to visit, false if the iteration is complete. </dd></dl>

</div>
</div>
<a id="ad767d731320d3f4c997c6ce9f7f8fa63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad767d731320d3f4c997c6ce9f7f8fa63">&#9670;&nbsp;</a></span>operator=()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt; &amp;&#160;</td>
          <td class="paramname"><em>rhs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Assignment operator, assigns the internal ref and increments the ref count. </p>
<p>Assigns the internal reference from an existing object and increments the reference count on the underlying internal XMP iterator.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rhs</td><td>An existing iteration object. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9a59621f2961ee11b164d82c8c3c0295"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a59621f2961ee11b164d82c8c3c0295">&#9670;&nbsp;</a></span>SetClientString()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::SetClientString </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>clientPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#ad439e3ceeb4590d310f6125aa12c6df6">XMP_StringPtr</a>&#160;</td>
          <td class="paramname"><em>valuePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#a9f7dcc184f901c713274edfdac5bcc9a">XMP_StringLen</a>&#160;</td>
          <td class="paramname"><em>valueLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a30b4d78974b347e4fcd275f1f65a61b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30b4d78974b347e4fcd275f1f65a61b2">&#9670;&nbsp;</a></span>Skip()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::Skip </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="XMP__Const_8h.html#aeb865118433be92d88e5f49ed11487c8">XMP_OptionBits</a>&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><code><a class="el" href="classTXMPIterator.html#a30b4d78974b347e4fcd275f1f65a61b2" title="Skip() skips some portion of the remaining iterations.">Skip()</a></code> skips some portion of the remaining iterations. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">options</td><td>Option flags to control the iteration, a logical OR of these bit-flag constants: <ul>
<li><code><a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2dab0b540cd3841f411471a827f833c606e" title="Skip the subtree below the current node.">kXMP_IterSkipSubtree</a></code> - Skip the subtree below the current node. </li>
<li><code><a class="el" href="XMP__Const_8h.html#a0411cd49bb5b71852cecd93bcbf0ca2da2537b4b8db838f85b47988b198cd2a12" title="Skip the subtree below and remaining siblings of the current node.">kXMP_IterSkipSiblings</a></code> - Skip the subtree below and remaining siblings of the current node. </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aeecf240d827e33c8b1d7040a99dc7600"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeecf240d827e33c8b1d7040a99dc7600">&#9670;&nbsp;</a></span>iterRef</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class tStringObj &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="XMP__Const_8h.html#a6ade57a30fb1e40d6aa9695c440fc3d2">XMPIteratorRef</a> <a class="el" href="classTXMPIterator.html">TXMPIterator</a>&lt; tStringObj &gt;::iterRef</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="TXMPIterator_8hpp_source.html#l00226">226</a> of file <a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>public/include/<a class="el" href="TXMPIterator_8hpp_source.html">TXMPIterator.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classTXMPIterator.html">TXMPIterator</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
